Targeted content transmission and reception system

ABSTRACT

This invention relates to methods and systems for the transmission and reception of targeted content. Using the systems and methods, a wide variety of different types of content can be targeted to a single client or a group of clients. The methods and systems utilize action handlers to handle different types of content. Further, the system can distribute packets with different rates depending on their priority.

CROSS REFERENCE TO RELATED APPLICATION

The present application is a continuation of U.S. application Ser. No.10/928,727, filed Aug. 30, 2004 which claims priority to andincorporates by reference, in its entirety, U.S. Provisional ApplicationNo. 60/498,575, which is titled “Distributed Message Management System”and was filed on Aug. 29, 2003 in the name of inventor Waiman Lam, etal.

FIELD OF INVENTION

The present invention relates to the broadcast and reception of targetedcontent. The targeted contest can be targeted to a single client or agroup of clients.

BACKGROUND OF THE INVENTION

Targeted programming allows broadcaster to broadcast content to specificusers. It can be used for a variety of purposes including conditioningaccess to certain channels, targeted advertising, and providing enhancedand interactive programming to users.

An example of a targeted programming system is a conditional access (CA)system. In a typical conditional access system, every user's set-top-box(STB) receives and conceivably views whatever is broadcast. Limitationof availability to select authorized individuals or groups is typicallyprovided by CA mechanisms, that restrict the availability of broadcastdata, to authorized users. An example of a CA mechanism is described inU.S. Pat. No. 6,157,719 to Anthony Wasilewski, et al. However, CAsystems generally require additional hardware and are not particularlywell-suited for targeting a variety of different types of contest tousers. For instance, while CA systems can send conditional access toprogramming, they are generally unable to send applications or updatesto individual users. Farther, the programming is typically targeted to asingle STB ID and there is usually no way for a group of STB to beprogrammed simultaneously.

Accordingly, a need exists for a more flexible system that can send avariety of targeted content. A need also exists for a system with thatcan send targeted content groups of individual users simultaneously.

SUMMARY OF THE INVENTION

This invention relates to methods and systems for the broadcast andreception of targeted content. The targeted content can be targeted to asingle client or a group of clients.

One embodiment is a method for distributing content to targeted clientsin a broadcast stream. The method includes determining an action handlerfor processing targeted content. The method also include preparing apacket that includes content, a client identifier that identifies one ormore targeted clients, and an identification of a content type anddistributing the packeted content in a broadcast stream to a pluralityof client systems.

Preferably, the client identifier identifies a single diem system or agroup of client systems. Preferably, the client identifier is a bitmapaddress that identifies a plurality of client systems. Preferably, theaction handler populates a database on a client system or runs anapplication. A favored application is a message application thatdisplays a message on a client system. Preferably, the content type is amulti-layer identifier. Preferably, the packeted content is distributedat a predetermined rate.

Another embodiment is a method for receiving targeted content in abroadcast stream. The method includes receiving at a client receiver abroadcast stream that includes packeted content. The packeted contentincludes content, a client identifier for identifying one or more clientsystems that are targeted for the content, and an identification of acontent type. The method also includes determining whether the cheatreceiver is targeted for the content and determining an action handlerfor processing the contest according to the Identified content type.

Preferably, the receiver determines which action handler is used toprocess the content by comparing the content type to a list of clienttypes in the receiver. Preferably, the packeted content comprises anupdated list of client identifiers for the receiver. Preferably, thereceiver determines whether the client receiver is targeted for thecontent by comparing the client identifier is a packet to a list ofclient identifiers in the receiver. Preferably, the packeted contentcomprises an updated list of client identifiers.

Yet another embodiment is a method of distributing third party contentto targeted clients. The method includes obtaining from a third partycontent and an identification of clients that are targeted for thecontent and determining a client receiver identification using theidentification of clients that are targeted for the content. The clientreceiver identification can be used by a client receiver to determine ifthe client is targeted for the content. The method also includespicketing the content with client receiver identification anddistributing the packeted content in a broadcast stream.

Another embodiment is a method of distributing content to targetedclients. The method includes obtaining content and a client identifierthat identifies one or more targeted clients, preparing a packetcomprising the content, client identifier and a targeted packetidentifier and distributing the packet in a broadcast stream a pluralityof times. The rate of distribution or the number of times a packet isdistributed is determined according to a priority of the packet.

Yet another embodiment is a receiving system for receiving targetedcontent in a broadcast stream. The receiving system includes a targetedcontent receiving layer capable of receiving packeted content andfiltering the content to determine whether the receiver is a target forthe content; and an application layer for receiving content from thetargeted content receiving layer when the receiver is a target for thecontent.

Another embodiment is a computer readable medium containing programinstructions that are executable to receive packeted content thatincludes a client identifier for identifying one or more chests that aretargeted for the content, and identification of a content type. Theprogramming instructions are also executable to determine whether achest receiver is targeted for the content and process the contentaccording to the identified content type.

Another embodiment is a targeted contest system that includes a contentprovider and a targeted content server that receives content from thecontent provider. The content provider provides content that is to betargeted to one or mote specific client and the content provider packetsthe content with a client identifier that identifies one or moretargeted clients, and an identification of a content type.

Another embodiment is a targeted content system that includes a targetedcontent server and a queuing system. The targeted content server packetsthe content with a client identifier that identifies one or moretargeted clients, and an identification of a content type and queuingsystem accepts the packeted content and inserts the packeted contentinto a broadcast stream.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be better understood by reference to the DetailedDescription of the Invention when taken together with the attachedFigures, wherein:

FIG. 1 is an overview of one embodiment of the targeted content system;

FIG. 2 is an example of one embodiment of the targeted content serversystem; and

FIG. 3 is a flowchart of the basic operation of the targeted contentextension.

DETAILED DESCRIPTION OF THE INVENTION

Described are methods and systems for distributing and receivingtargeted content in a broadcast stream. In addition, packets useful indistributing the content in a broadcast stream are described.

There are many scenarios where applications or services, contentproviders or merchants, commercial third parties and network operatorsdesire to send content to a client system. Such content can includenotifications of an event or change of status. Examples include: newEmail or Instant Message received alerts; targeted or requested News orInformation updates (Stock updates, Scores or Breaking News, etc);reminders or prompts to view a broadcast and targeted advertisements.

The targeted content system allows content to be sent to clientreceivers through a broadcast medium that does not require the receiverto have a backchannel. Further, it allows tor the receiver to directlycommunicate back to the broadcaster, and does not need to be dependenton which channel the client is viewing. The system can broadcast contentto individuals, or groups without disrupting the current broadcastcontent or causing the user to (immediately) tune away from what be isviewing. The system can also be used to manage the configuration ofreceivers in a network.

FIG. 1 shows one embodiment of the targeted content system. In FIG. 1, atargeted content server 100 is configured to receive content from one ormore content providers 102. The content providers 102 can be connectedto the targeted content server, for example, by use of an Internet,Ethernet or any other transmission means or network known in the art104. An Internet connection 104 allows content providers 102 to besituated away from the targeted content server 100. This configurationcan be useful, for example, for configurations in which the contentprovider 102 is a third party who wishes to use the targeted messagesystem to distribute content to clients 120.

Alternatively, content provider 102 may be local to the targeted contentserver 100, or the targeted content server may generate targeted contenton its own without a targeted content provider.

Once the targeted content server 100 receives the content from contentprovider 102, the targeted content server 100 identifies clients 120that should receive the targeted content. This determination can be madeby either the targeted content provider 102, or the targeted contentserver 100. Targeted clients can include, for example, an individualset-top box 110. all set-top boxes in a household, all clients in acertain area or with certain characteristics, or even all clients of abroadcast system 108.

The content and the identification of clients that should receive thetargeted content are packaged into data packets together and sent toqueuing system 106. Queuing system 106 determines the data rate that thepacketed content should be sent to targeted client 120. The rate thatthe packeted content is sent can depend on any number of choicesincluding the priority of content, the date and time of the contentamongst other things. The queuing system 106 then sends the packetedcontent to broadcast system 108, which distributes the packeted contentto clients using a broadcast signal. Preferably, the broadcast system108 can include cable, satellite, terrestrial, Internet, telephonesystems or any other conventional broadcast system. The broadcast signalcan be analog or digital. For capacity reasons, preferably the broadcastsignal is digital. Preferably, the broadcast system 108 distributes thepacketed contest concurrently with normally scheduled programming.Alternatively, it could be sent at other times.

The targeted client system 120 can be any system configured to receive abroadcast signal. In FIG. 1, client system 120 is a television system.Client systems may include wired and wireless PC devices, digitaltelevisions, analog televisions, PDAs, web tablets, digital radios,analog radios, cell phones, and any combination of the foregoingdevices.

In FIG. 1, client system 120 includes set-top box 110 and television 118connected to set-top box 110. Set-top box 110 includes software andhardware 112, 114 and 116 for receiving and implementing the packetedcontent. Set-top box 110 receives the broadcast signal from broadcastsystem 118 and demodulates, decompresses and/or decodes according topresses well know in the art.

Middleware 112 in set-top box 110 is connected to targeted contentextension 114 and allows targeted content extension 114 to communicatewith the rest of the client system 120. Middleware is software thatmanages the communication between different applications in thereceiver. The middleware allows the same applications to be run ondifferent receivers having different computing platforms. Targetedcontent extension 114 receives targeted content packets and determineswhether the client system 120 is a target of the targeted content.Targeted content extension 114 is able to determine which packets aremeant for the client system by looking for specific client identifiersin the targeted content. If the targeted content extension 114determines that the targeted content is meant for client system 120, thetargeted content extension 114 takes steps to implement the targetedcontent. The targeted content can include a wide variety of dataincluding updates to client system 120, configuration data, tables,messages and programs for client system 120.

Application 116 is linked to targeted content extension 114. Targetedcontent extension 114 can pass off targeted content meant for clientsystem 120 for implementation. In FIG. 1, the targeted content is amessage to client system 120. Application 116 in this example is apop-up message application that displays pop-up 124 containing thetargeted content ever regularly scheduled programming 122 television118. The regularly scheduled programming is preferably receivedconcurrently with tire targeted content.

Targeted Content Server System

The targeted content server system includes all components for preparinga targeted content packet and broadcasting the targeted content to oneor more client systems. The targeted content server system can include acontent provider application, for receiving content from a contentprovider, a targeted content server for preparing the targeted contentpacket, and a queuing system for distributing the targeted content atpredetermined times in a broadcast stream.

FIG. 2 shows one embodiment of a targeted content server system. In FIG.2, a targeted content server 204 is connected to one or more contentprovider applications 202 that provide content to be distributed to oneor more client systems. Targeted content server 204 packets this contentwith such information as a client identifier, a targeted packetidentifier and a content identifier. Administrative tools 208 can beused to update the targeted content server 204 and to generate contentsuch as system messages and data to be distributed to client systems.Queuing system 206 accepts the targeted content packets and preferablyinserts them at predetermined times into a broadcast stream that isreceived by a plurality of client systems. The targeted content serversystem can assign a quality of service (QOS) to each targeted packet.The quality of service defines the repetition rate (the number of timesthe packet is sent per unit of time) of the packet. The quality ofservice of the packet can be varied according to the importance of thepacket.

The targeted content server 204 generates the targeted content packets.The packet content can be received from a content provider application202 or generated by the content server 204 itself. During the packetgeneration process, the targeted content server 204 can access adatabases 210 to determine client identifiers to address the packet tospecific client systems.

The targeted content server 204 can include a single processor ormultiple processing elements. The term processing element may refer to(1) a process running on a particular piece, or across particularpieces, of processing hardware, (2) a particular piece of processinghardware, or either (1) or (2) as the context allows. Each processingelement can be supported via a standard general purpose processor suchas an Intel-compatible processor platform preferably using at least onePENTIUM III, PENTIUM IV or CELERON, PENTIUM, XEON, ITANIUM (Intel Corp.,Santa Clara, Calif.) class processor; alternative processors such asMIPS (MIPS Technologies, Mountain View, Calif.) or UltraSPARC (SunMicrosystems, Palo Alto, Calif.) could be used in other embodiments, aswell as other microprocessors which are well known in the art. Theserver processor can include one or more field programmable gate arrays(FPGAs) and/or application specific integrated circuits (ASICs)configured to perform at least a portion of the functionality accordingto the present invention. In other embodiments, an embeddedmicroprocessor can be used such as, but not limited to, an ARM (ARM,Carlsbad, Calif.) processor core.

In some embodiments, the system processor can include a combination ofgeneral purpose processors, ASICs and/or FPGAs. In some embodimentsfunctionality can be distributed across multiple processing elements. Insome such embodiments, aspects of the functionality or portions thereofmay be executed in series or in parallel; particular functionality orportions thereof executed a multiplicity of times may also occur inseries or parallel.

In a system processor including at least one general purpose processor,the general purpose processor typically runs an appropriate operatingsystem such as, but not limited to, WINDOWS/NT, WINDOWS 2000 orWINDOWS/XP (Microsoft, Redmond, Wash.), IRIX (Silicon Graphics, MountainView, Calif.), Solaris SOLARIS (Sun Microsystems, Palo Alto, Calif.), orLINUX (or other UNIX variant). This component runs preferably on Windows2000.

The targeted content server can include authorization module 212.Authorization module 212 provides access to content providerapplications 202 and contains information such as passwords and contentidentifiers for indicating which action handlers (the module in theclient system that processes the content) should be used by the clientsystem to process the content. It also provides the content categorieswith content from the provider. Targeted content server 294 can use thisinformation to limit access to provider applications (for examplecertain providers may have access to send content to only specificclient systems), determine the quality of service (how often the contentshould be sent in the broadcast stream) using queuing system 206 anddetermine how to label incoming packets with the appropriate contentidentifiers.

Once a message is received from a content provider application 202, thetargeted content server can look up the client identifiers that shouldbe assigned to the content using address, resolution module 214. Acontent provider application 202 can provide content with a providercontent identifier. For example, an email application may provide aclient's email address to identify a client. The targeted content servercan then use address resolution module 214 to determine the clientidentifier to be used to deliver the content to the correct clientsystem. If the identifiers can be found, the process continues,otherwise an error can be returned to the content provider application202. The address resolution module 214 can also verify whether theapplication has permission to send content to the client system, whichprevents spamming.

By allowing a content provider application to refer to a client usingtheir own identifier the system allows the targeted content server 204to integrate more easily with content provider applications 202.

Once the content identifiers and client identifiers are determined,targeted content server 204 prepares a targeted content packet thatcontains all relevant information about the message at 216. The packetcan contain, for example, a client identifier, a content identification,an expiration date, etc.

After the packet is prepared at 216, the targeted content server 204then assigns the messaged) to an appropriate quality of service (QOS) at218. QOS describes how the queuing system 206 should handle the messageincluding the repetition rate used to send the content. A packet with ahigh quality of service is preferably sent at a higher repetition ratethan packets with a lower quality of service. The quality of service canchange over time. For example, the repetition rate can decrease overtime.

Preferably, information about the content is logged at 220. Contentinformation can include when the content was received, when the contentexpires and the site of the content. The parameters can also includewhen the content was removed, the number of times the content was sent,etc. This data can be used for a variety of purposes including billingand auditing purposes.

Once the message has been delivered to be queuing system 206, thetargeted content server 204 can return a request identification andoutput message count (number of generated messages) to the contentprovider application 202 at 222. The content provider application 222can use the request identification to cancel the messages at a latertime.

A message can be removed from the system either when the message'slifetime has expired or when the targeted content server 204 receives acancel command from content provider application 202.

The queuing system 206 manages and plays a carousel containing all thetargeted content packets. A carousel is an ordered list of targetedcontent packets. Upon receiving the calls from the targeted contentserver 204, the queuing system 206 creates the appropriate queue nodes224 for each targeted content packet.

Each queue node 224 inserts the targeted content packet into a broadcaststream according to its QOS. The QOS can include the followingparameters: output bit rate (how much bandwidth in the broadcast streamthe targeted content packet is allocated), message lifetime (the lengthof time the targeted content packet should be broadcasted) and therepetition rate (how often the packet should be sent).

The repetition rate of a targeted content packet can be constant for aperiod of time or variable. For example, a message may be sent twentytimes during the first hour, ten times during the second how and noneduring the third hour. It can be recognized that any variation inrepetition rate can be obtained.

Different repetition rates can be obtained with different queue nodes.For example, a certain queue may be configured to send a targetedcontent packet X number of times. To decrease the number of rimes thecontent is sent, the content moves to the next queue that has a lowerrepeated rate. The content can stay in the last queue until its lifetimeexpires.

Preferably, the queue nodes 224 package content with the same clientidentifiers together to reduce the number of messages being sent.

The nodes can insert the targeted content packets into a variety ofbroadcast streams 226 using any number of different formats. Forexample, the targeted content packets can be formatted into MPEG-2private sections and MPEG-2 transport packets, MPEG compression is a setof methods for compression and decompression of full motion video imagesthat uses interframe and intraframe compression techniques.

Multiple private sections can be packed together within a transportpacket to further reduce the bandwidth usage. Null packets will be sentto fulfill the output bandwidth requirement if the system is underflow.It will also be recognized that the packets can be broadcast using anumber of other digital and analog formats. For example, the packetscould be inserted into the vertical blanking interval (VBI) of an analogbroadcast stream, the horizontal blanking interval, secondary audiochannels, SAP, etc.

Administration Tool 208 allows a network operator to configure andmonitor the targeted content server system 200. Further, provides thecapability to create and provide network and system content to clientsystems. For example, a network operator can use targeted corneal system200 to send targeted messages to client systems, configure tables in theclient system and send content for obtaining applications.

System configuration tables are used by client systems to determine howto handle incoming targeted content packets (For example, which type ofaction handler to use for a given content). The tables can be broadcastcontinuously with a broadcast identifier to all receivers or targeted toindividual receivers (for example, a table containing the clientidentifiers for a particular receiver may be broadcast to a singlereceiver).

Targeted Packet

Targeted packet refers to a collection of related data. Targeted packetsare preferably transmitted together or in a serial fashion on abroadcast stream.

The packet preferably includes a client identifier. The clientidentifiers can identify, for example, a single receiver, a single usersigned into the receiver, a set of receivers in a household, a group ofreceivers or even all receivers capable of receiving and processing thebroadcast packets.

For example, the client identifier may be unique to a specific clientsystem. Identifiers of this type may include an identifier unique to areceiver (such as a set top box), an identifier that is unique to asmart card within the receiver, or a client's account number programmedinto the receiver. This type of identifier can be attached to contentthat is meant only for a specific client system.

Multiple receivers can be set to belong to a single group. An example ofa group client identifier is a zip code. Once a receiver is registeredby including the group identifier for a specific zip code in a filter inthe receiver, the receiver can receive all content addressed to that zipcode. Other examples of a group identifier include users of a certaindemographic, users who desire certain information content (for example,stock or sports news) and a wide variety of other groups that caninclude one or more users and/or receivers. A group client identifierallows a single message to be sent to all receivers belonging to thesame group. This type of addressing saves bandwidth compared toindividual addressing. It also has the effect of improving the real-timebehavior by reducing the latency between the time a new message entersthe system and the time it is sent over the air.

Bitmap addressing can also be used as a group identifier. For example,the last 8 bits of an individual receiver address can be ignored andreplaced with a 256 bit bitmap (32 bytes). Receivers are then addressedwhen their individual bit in the bitmap is set. This addressing modeallows up to 256 receivers to be addressed with a single message, and ismore efficient than individual messages.

The targeted content extension can also look tot broadcast addressing inwhich no address is used, as a single message that is seat to allreceivers.

The client identifier can be any length. In addition, the length of theclient identifier may be adjustable. The actual client identifier lengthcould be a separate field in the packet or part of the content of asingle packet. In this manner, if a network does not use all bytes setaside for the client identifier it can reduce the length of the clientidentifier number by notifying the targeted content extension of theactual client identifier length. Reducing the size of the clientidentifier can increase system performance by decreasing the filteringtime at the receiver. Increasing the size of this field increases thenumber of different content packets that can be identified concurrently.

Preferably, the packet includes a targeted packet identifier thatidentities the packet. All packets with this identifier will contain thesame targeted packet identifiers. The targeted packet identifier allowsa receiver to determine if the content has already been received andprocessed, preventing duplication.

The packet preferably also includes a multi-layer content typeidentifier. In one embodiment, the content type identifier is dividedinto a main category and a subcategory content identifier. Main contenttype identifiers can include, for example whether the content is systemcontent, network content or application content.

System content can include, for example, content for populating andupdating tables and data relating to the client system. This content maybe used by the system for updating which client identifiers should beaccepted, which action handler should be used to process a certain typeof content updates to software within the system etc. Network contentcan include, for example, program related content related to programmingschedules and which networks the client is authorized to view.Application content can relate to content that is used to run a programon the client's system. An example of this type of content can include,for example, messages to be sent and viewed on a client's system.

The subcategories can more specifically detail the contents of thepacket. For example, what type of table is included, a message type etc.Together the main and sub-content type can be used by the targetedcontent extension to determine which type of action handler should beused to process the content.

In addition, preferably the expiration date of the content packet isincluded in the packet. The expiration date also prevents the continualprocessing of the same packet repeatedly. For example, a packet with anexpiration date of 20 minutes will indicate to the receiver that thepacket once it is processed should not be processed again for 20minutes. The receiver will ignore messages with the same targeted packetidentifier. If the content is a message, the expiration date can be usedto prevent the client system from displaying the message continually.Instead, the message will only be once in this 20 minutes.

The data packet can also include information for returning a contentreceived message hack to the sender. This field could include aninternet address or other identifier to be used to contact the sender sothat the sender will cease sending the message to the client. This fieldcan be used if the client system includes a backchannel that allowscommunication back to the content sender.

Finally, a private data field can also be included. The private datafield can include any other information, such as more specificparameters for handling the message.

Content

The content can comprise a wide variety of data. Some preferred datatypes include table content, message content and application content.Application content can include messages.

Table content is content that is sent to a client system or a group ofclient systems to populate a table or other data store in the clientreceiver. Examples of table content can include one or more clientidentifiers that are to be used to populate a list within a clientreceiver. For example, a client receiver may include a preset receiverclient identifier. A data packet containing this receiver clientidentifier can be sent to the receiver with a table of additional clientidentifiers that the receiver should accept. The data or tables can alsobe used to configure a variety of programs within the receiver or aclient system attached to the receiver.

Message content is content that includes messages, notification, oralerts that are sent to a user of a client system. Preferred messagescan include new email or instant message received alerts; targeted orrequested news or information updates (stock, updates, scores orbreaking news, etc.), reminders or prompts to view a broadcast andtargeted advertising messages. This type of content may utilize one ormore programs within the receiver to display the messages to the viewer.

Download application content is content that includes information forobtaining a program that is to be utilized by the receiver. This contentmay include information on bow the client system can download theapplication (for example by using an internet connection) or the contentmay even include the program.

Receiver

The receiver is capable of receiving a broadcast signal. A preferredreceiver is capable of receiving a digital or analog television signal.The receiver may also include, but does not require, a backchannel. Abackchannel is a communications pathway in which the receiver is able tosend information to other systems outside the client system. Such apathway may include a standard POTS (plain old telephone system) phoneline and associated modems. The backchannel may also include a coaxialcable, fiber optic cable, DSL (Digital Subscriber Line), ATM(Asynchronous Transfer Mode) or other communication lines both wired andwireless.

Targeted Content Extension

The targeted content extension listens for packeted content in abroadcast signal received by the receiver. Preferably, the targetedcontent extension listens to all channels of the broadcast, so that nomatter what the end user is viewing or listening to, a packet can beidentified and processed as soon as possible. The targeted contentextension filters the packeted content to determine whether the packetedcontent is content that is targeted for the client system, and,therefore, needs to be further processed. The filtering can be hardwarefiltering (for example a filter can be in the demultiplexer hardware),software, or both. This filtering preferably can be turned off if theclient system user does not wish to obtain any targeted content.

Preferably the targeted content extension includes a table or other datastructure that includes all client identifiers assigned to the client.The targeted content extension filters Incoming content looking for theclient identifiers in the table. If the incoming content includes aclient identifier in the table, the content is further processed. Aspreviously described, the client identifiers can be configured toaddress a single receiver, a group of receivers or even all receiversthat receive a broadcast stream.

In addition, a more specific client identifier can also be used. Forexample, certain applications may need a better addressing mechanismthan just the receiver. For instance, an e-mail application is likely toallow multiple users for a single set-top box. Since it is difficult toprovide a standard mechanism for all possible applications, the targetedcontent extension may leave additional addressing op to eachapplication. For each application, the content may provide additionaladdress information that depends on the content, identifier space orprivate data field space, e.g. the e-mail application may use a ‘To:’field to identify the e-mail recipient.

Preferably, the targeted content extension includes a table or otherdatabase that specifies what action handler should be used to process aspecified content. An action handler can be an application or otherprogram that takes the appropriate action for the received content. Apreferred action handler can configure the receiver. Configuration caninclude filling in tables or other databases with user specificinformation. The targeted content extension or other programs within thereceiver (for example, the receiver's middleware) can use thisinformation.

Another preferred action handler can control the receiver. Control caninclude, for example, changing the channel of the receiver. Yet anotherpreferred action handler can control components of the receiver, forexample the middleware program or other software in the receiver.Finally, another preferred action handler can run a message orinteractive program. Favored interactive programs can display messagesto the user and prompt the user if they want to take some action (suchas run another application).

The table that lists the appropriate action handlers and other tablesand databases utilized for by the targeted content extension arepreferably obtained and/or updated using packeted content. Tables anddatabases used by other programs in the receiver can also be updatedand/or obtained in this manner.

The targeted content extension can look up the content main category andsubcategory in the packeted content to determine which action handlershould be used. This table can also include where the action handler canbe found (if the action handler needed to handle a specific content isnot on the system, the table, can include where the handler can bedownloaded or otherwise obtained) and what parameters are used toactivate the action handler. In an alternative embodiment, theinformation used for finding and running the action handler for aparticular content packet is sent with the packet.

A preferred application displays messages (such as notification andalerts) on a client system. Message applications can display thecontents of a packet in a variety of ways. For example, the messages maybe conveyed visually or audibly using the client system. A message maybe displayed on a video display or on a receiver/set top box.Alternatively, or in addition, the client system may utilize audiosignals to notify a user of the client system.

In a television environment a preferred application is a pop-up messagesystem. The popup message system displays messages to a user in a windowthat overlays normal broadcast programming.

After receiving a message the application may prompt the user for aresponse. For example, the system may notify a user that they have emailor as instant message waiting and prompt the user if they wish to launchan email or instant message program to view their email or instantmessage.

Preferably, the targeted content extension records information onincoming content. This information can include the contentidentification that identifies the content packet. In addition,preferably the expiration date of the content packet is recorded toprevent processing the same packet again in its lifecycle.

FIG. 3 is a flowchart of the basic operation of the targeted contentextension 300. In FIG. 3, packeted content is delivered to the targetedcontent extension at 302. Hardware in the receiver, a middleware programor the targeted extension itself can parse oat the packeted content fromregularly scheduled programming of a broadcast stream.

The targeted content extension 300 then compares the clientidentification of the packeted content to a table, of client identifiersat 304. If the client identifier in the message matches an acceptedclient identifier in the table, the packeted content proceeds to 306,otherwise the targeted content is discarded and the targeted contentextension returns to 302 to await the arrival of the next targetedpacket.

At 306 the content, category from the packeted content is found in atable. The table lists the appropriate action handler for the contentcategory. In addition, the table can list the parameters that need to beprovided to the action handler for handling the contents of the packetand where on the system the action handler can be found.

If the action handler is not on the system, the table can list where itcan be obtained. The system at 310 can then go and download (orotherwise obtain) the appropriate action handler.

If the action handler is on the system, the targeted content extensionhands the content and any parameters to the appropriate action handlerfor processing the contents of the targeted packet at 308. The actionhandler can take an appropriate action, for example running a firstinteractive application 312, to display a message to the user that theyhave received a new email. In response to a client reply to the message,the first application 312 may activate a second application 314, whichcan be, for example, an email program.

The above description, is presented to enable a person skilled in theart to make and use the invention, and is provided in the context of aparticular application and its requirements. Various modifications tothe preferred embodiments will be readily apparent to those skilled inthe art, and the generic principles defined herein may be applied toother embodiments and applications without departing from the spirit andscope of the invention. Thus, this invention is not intended to belimited to the embodiments shown, but is to be accorded the widest scopeconsistent with the principles and features disclosed herein.

Other embodiments and uses of the invention will be apparent to thoseskilled in the art from consideration of the specification and practiceof the invention disclosed herein. All references cited herein,including all U.S. and foreign patents, patent applications, allpublications and other documentary materials, are specifically andentirely hereby incorporated by reference.

The invention claimed is:
 1. A method comprising: providing in memory ofa client device: a plurality of stored type identifiers, each storedtype identifier corresponding to an action handler comprising executablecode configured to perform an associated action on the client device,and at least one stored device identifier that identifies the clientdevice; receiving, at the client device, a content stream that comprisespocketed content, the pocketed content including content, a transmittedclient identifier that identifies one or more client devices that aretargeted for the content, and a transmitted type identifier used toidentify an action handler to be used to process the content;determining, using one or more processors of the client device, that theclient device is targeted for the content by matching the transmittedclient identifier in the received pocketed content to the at least onestored device identifier that identifies the client device; in responseto the determining that the client device is targeted, accessing thememory using one or more processors to identify, using the transmittedtype identifier, the action handler to be used to process the contentand parameters to be provided to the action handler for processing thecontent; and executing, using one or more processors, executable code ofthe action handler, the content is processed by the executable code toperform an action associated with the action handler.
 2. The method ofclaim 1, wherein the client identifier identifies one or more ofspecific client devices, users, sets of client devices in a household,or a plurality of client devices within a zip code.
 3. The method ofclaim 1, wherein the content is system content for updating data of theclient device.
 4. The method of claim 1, wherein the content includes atleast one new client identifier to be stored in the memory of the clientdevice so that a future content stream received including the new clientidentifier will be processed by the client device.
 5. The method ofclaim 1, wherein the content includes program related content toidentify networks the client device is authorized to view.
 6. The methodof claim 1, wherein the content includes application content used to runan application on the client device.
 7. The method of claim 1, whereinthe content includes data to populate a data store in the client device,the data including additional client identifiers that the client deviceis to store.
 8. The method of claim 1, wherein the content includes datato configure one or more applications within the client device.
 9. Themethod of claim 1, wherein the content includes one or more of messages,notifications, targeted advertising, or information updates for a userof client device.
 10. The method of claim 1, wherein the contentincludes application content including information for obtaining aprogram to be utilized by the client device.
 11. The method of claim 1,wherein the client device is a set-top-box, a computer, a tablet, or acell phone.
 12. The method of claim 1, wherein the executable code ofthe action handler is stored in the memory of the client device.
 13. Themethod of claim 1, wherein the executable code of the action handler isretrieved from a remote server and then stored locally in the memory ofthe client device.
 14. The method of claim 1, wherein the action handlerconfigures the client device.
 15. The method of claim 1, wherein thepocketed content is received in an MPEG format.
 16. The method of claim1, wherein the action handler is identified by identifying a contentcategory from the transmitted type identifier, the action handlercorresponding to the content category in the memory.
 17. A client devicecomprising: memory operatively storing: a plurality of stored typeidentifiers, each stored type identifier corresponding to an actionhandler comprising executable code configured to perform an associatedaction on the client device, and at least one stored device identifierthat identifies the client device; a receiver to receive a contentstream that comprises pocketed content, the pocketed content includingcontent, a transmitted client identifier that identifies one or moreclient devices that are targeted for the content, and a transmitted typeidentifier used to identify an action handler to be used to process thecontent; and one or more processors configured to: determine that theclient device is targeted for the content by matching the transmittedclient identifier in the received packeted content to the at least onestored device identifier that identifies the client device, in responseto the determining that the client device is targeted, access the memoryto identify, using the transmitted type identifier, the action handlerto be used to process the content and parameters to be provided to theaction handler for processing the content, and execute executable codeof the action handler identified, the content is processed by theexecutable code to perform an action associated with the action handler.18. The client device of claim 17, wherein the content is system contentfor updating data of the client device.
 19. The client device of claim17, wherein the content includes at least one new client identifier tobe stored in the memory of the client device so that a future contentstream received including the new client identifier will be processed bythe client device.
 20. The client device of claim 17, wherein theexecutable code of the action handler is stored in the memory of theclient device.
 21. A non-transitory machine-readable storage mediumincluding instructions, which when executed by one or more hardwareprocessors of a machine, cause the machine to perform operationscomprising: providing in memory of a client device: a plurality ofstored type identifiers, each stored type identifier corresponding to anaction handler comprising executable code configured to perform anassociated action on the client device, and at least one stored deviceidentifier that identifies the client device; receiving, at the clientdevice, a content stream that comprises pocketed content, the pocketedcontent including content, a transmitted client identifier thatidentifies one or more client devices that are targeted for the content,and a transmitted type identifier used to identify an action handler tobe used to process the content; determining that the client device istargeted for the content by matching the transmitted client identifierin the received pocketed content to the at least one stored deviceidentifier that identifies the client device; in response to thedetermining that the client device is targeted, accessing the memory toidentify, using the transmitted type identifier, the action handler tobe used to process the content and parameters to be provided to theaction handler for processing the content; and executing executable codeof the action handler, the content is processed by the executable codeto perform an action associated with the action handler.